package config

type HandleSrvConfig struct {
	// 后端服务器直接从nacos读取名字，然后在Consul服务发现获取一台主机
	Name string `mapstructure:"name" json:"name"`
}

type JWTConfig struct {
	SigningKey string `mapstructure:"key" json:"key"`
}

type ConsulConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}
type JaegerConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
	Name string `mapstructure:"name" json:"name"`
}
type NacosConfig struct {
	Host      string `mapstructure:"host" json:"host"`
	Port      uint64 `mapstructure:"port" json:"port"`
	NameSpace string `mapstructure:"namespace" json:"namespace"`
	User      string `mapstructure:"user" json:"user"`
	Password  string `mapstructure:"password" json:"password"`
	DataId    string `mapstructure:"data_id" json:"data_id"`
	Group     string `mapstructure:"group" json:"group"`
}
type AliPayConfig struct {
	AppID           string `mapstructure:"app_id" json:"app_id"`
	AppPrivateKey   string `mapstructure:"app_private_key" json:"app_private_key"`
	AliPayPublicKey string `mapstructure:"alipay_public_key" json:"alipay_public_key"`
	NotifyURL       string `mapstructure:"notify_url" json:"notify_url"`
	ReturnURL       string `mapstructure:"return_url" json:"return_url"`
}
type ServerConfig struct {
	Name             string          `mapstructure:"name" json:"name"`
	Port             int             `mapstructure:"port" json:"port"`
	Host             string          `mapstructure:"host" json:"host"`
	Tags             []string        `mapstructure:"tags" json:"tags"`
	OrderSrvInfo     HandleSrvConfig `mapstructure:"order_srv" json:"order_srv"`
	GoodSrvInfo      HandleSrvConfig `mapstructure:"goods_srv" json:"goods_srv"`
	InventorySrvInfo HandleSrvConfig `mapstructure:"inventory_srv" json:"inventory_srv"`
	JWTInfo          JWTConfig       `mapstructure:"jwt" json:"jwt"`
	ConsulInfo       ConsulConfig    `mapstructure:"consul" json:"consul"`
	AlipayInfo       AliPayConfig    `mapstructure:"alipay" json:"alipay"`
	JaegerInfo       JaegerConfig    `mapstructure:"jaeger" json:"jaeger"`
}
